<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">

    <!-- Always force latest IE rendering engine or request Chrome Frame -->
    <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <!-- Use title if it's in the page YAML frontmatter -->
    <title>Backup and Restore MySQL/MariaDB Databases</title>

    
    

    <link href="/dashboard/stylesheets/normalize.css" rel="stylesheet" type="text/css" /><link href="/dashboard/stylesheets/all.css" rel="stylesheet" type="text/css" />
    <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/3.1.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />

    <script src="/dashboard/javascripts/modernizr.js" type="text/javascript"></script>


    <link href="/dashboard/images/favicon.png" rel="icon" type="image/png" />


  </head>

  <body class="docs docs_backup-restore-mysql">
    <div id="fb-root"></div>
    <script>(function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=277385395761685";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>
    <div class="contain-to-grid">
      <nav class="top-bar" data-topbar>
        <ul class="title-area">
          <li class="name">
            <h1><a href="/dashboard/index.html">Apache Friends</a></h1>
          </li>
          <li class="toggle-topbar menu-icon">
            <a href="#">
              <span>Menu</span>
            </a>
          </li>
        </ul>

        <section class="top-bar-section">
          <!-- Right Nav Section -->
          <ul class="right">
              <li class=""><a href="/applications.html">Applications</a></li>
              <li class=""><a href="/dashboard/faq.html">FAQs</a></li>
              <li class="active"><a href="/dashboard/howto.html">HOW-TO Guides</a></li>
              <li class=""><a target="_blank" href="/dashboard/phpinfo.php">PHPInfo</a></li>
              <li class=""><a href="/phpmyadmin/">phpMyAdmin</a></li>
          </ul>
        </section>
      </nav>
    </div>

    <div id="wrapper">
      <div class="hero">
  <div class="row">
    <div class="large-12 columns">
      <h1>Documentation</h1>
    </div>
  </div>
</div>
<div class="row">
  <div class="large-12 columns">
    <ul class="sub-nav">
      <li>
<a class="pdf" target="_blank" href="/dashboard/docs/backup-restore-mysql.pdf">          Download PDF
          <span>backup-restore-mysql.pdf</span>
</a>      </li>
    </ul>
    <article class="asciidoctor">
        <aside>
          <h3>Contents</h3>
          <ol class="sections">
              <li><a href="/dashboard/docs/backup-restore-mysql.html#using_phpmyadmin">Using phpMyAdmin</a></li>
              <li><a href="/dashboard/docs/backup-restore-mysql.html#using_command_line_tools">Using Command-Line Tools</a></li>
          </ol>
        </aside>
      <h1>Backup and Restore MySQL/MariaDB Databases</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>As you use XAMPP, you might find that you need to backup or restore a MySQL or MariaDB database. There are two easy ways to do this with XAMPP: using the browser-based phpMyAdmin tool or using MySQL/MariaDB&#8217;s command-line tools. This guide describes both options.</p>
</div>
<div class="paragraph">
<p>This guide assumes that you already have a PHP application that uses a MySQL/MariaDB database deployed on XAMPP. The example application used in this guide is WordPress, although the steps outlined below will work for any application.</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
Remember that you can install WordPress quickly using the <a href="https://bitnami.com/stack/xampp#wordpress">Bitnami WordPress module for XAMPP</a>.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_using_phpmyadmin">Using phpMyAdmin</h2>
<div class="sectionbody">
<div class="paragraph">
<p>XAMPP includes <a href="http://www.phpmyadmin.net/">phpMyAdmin</a>, an open-source, browser-based tool for managing MySQL/MariaDB database servers. To backup a MySQL/MariaDB database using phpMyAdmin, follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Browse to <a href="http://localhost/phpMyAdmin" class="bare">http://localhost/phpMyAdmin</a> or <a href="http://127.0.0.1/phpMyAdmin" class="bare">http://127.0.0.1/phpMyAdmin</a>. If required, log in using your database access credentials. On a fresh XAMPP installation without any changes, you can log in as <em>root</em> with a blank password.</p>
</li>
<li>
<p>Select the database to be backed up from the list in the left navigation pane. In this case, we&#8217;re backing up the WordPress database, which is named <em>bitnami_wordpress</em>.</p>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image1.png" alt="image1">
</div>
</div>
</li>
<li>
<p>Select the "Export" command in the top navigation bar.</p>
</li>
<li>
<p>On the resulting page, select "Quick" as the export method and "SQL" as the output format. Click "Go" to proceed.</p>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image2.png" alt="image2">
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>phpMyAdmin will export the database to a text file as a series of SQL statements. Once done, the browser will prompt you to download it to the desktop. This text file is your backup, so store it safely!</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image3.png" alt="image3">
</div>
</div>
<div class="paragraph">
<p>At a later point, you may wish to restore the database. To restore the data to a fresh MySQL/MariaDB database using phpMyAdmin, follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Browse to <a href="http://localhost/phpMyAdmin" class="bare">http://localhost/phpMyAdmin</a> or <a href="http://127.0.0.1/phpMyAdmin" class="bare">http://127.0.0.1/phpMyAdmin</a>. If required, log in using your database access credentials.</p>
</li>
<li>
<p>Select the "New" command in the left navigation pane.</p>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image4.png" alt="image4">
</div>
</div>
</li>
<li>
<p>On the resulting page, enter a name for the new database (in this case, <em>myblog</em>). Select the collation "utf8_general_ci". Click "Create" to create the database.</p>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image5.png" alt="image5">
</div>
</div>
<div class="paragraph">
<p>Once the database has been created, it will appear in the left navigation pane.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image6.png" alt="image6">
</div>
</div>
</li>
<li>
<p>Select the new database from the left navigation pane. In the resulting page, select the "Import" command in the top navigation bar.</p>
</li>
<li>
<p>Click the "Browse&#8230;&#8203;" button and select the backup file created earlier. Click "Go" to proceed.</p>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image7.png" alt="image7">
</div>
</div>
<div class="paragraph">
<p>phpMyAdmin will import the data from the backup file. Once complete, you will see a screen indicating the status of the import.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image8.png" alt="image8">
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>If you browse the contents of the database, you should now see your original data.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image9.png" alt="image9">
</div>
</div>
<div class="paragraph">
<p>You should now update your application&#8217;s configuration and point it to your newly-created database. For example, with the Bitnami WordPress module, you will need to edit the <em>wp-config.php</em> file in the <em>apps\wordpress\htdocs\</em> subdirectory of your XAMPP installation directory. Within this file, you will need to update the <em>DB_NAME</em> constant to use the new database name.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image10.png" alt="image10">
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
By default, PHP (and therefore phpMyAdmin) is configured to only accept uploads up to 2 MB in size. If your database is larger than this, you need to modify the PHP configuration file to accept a larger upload size. To do this, edit the <em>php.ini</em> file in the <em>php\</em> subdirectory of your XAMPP installation directory and increase the values of the <em>post_max_size</em> and <em>upload_max_filesize</em> variables. Save your changes and restart Apache for the changes to take effect.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_using_command_line_tools">Using Command-Line Tools</h2>
<div class="sectionbody">
<div class="paragraph">
<p>MySQL and MariaDB include two command-line tools that you can use to quickly backup and restore databases. The <em>mysqldump</em> tool is used to export the contents of a database to a text file, while the <em>mysql</em> client can be used to import data from a text file into a MySQL/MariaDB database.</p>
</div>
<div class="paragraph">
<p>To backup a MySQL/MariaDB database from the command line, follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Launch a new Windows command shell using the "Shell" button in the XAMPP control panel.</p>
</li>
<li>
<p>Use the command below to export the contents of the selected database. In this example, we&#8217;re backing up the WordPress database, which is named <em>bitnami_wordpress</em>, to a file named <em>bitnami_wordpress.sql</em>. This text file is your backup, so store it safely!</p>
<div class="literalblock">
<div class="content">
<pre>mysqldump --user=root --password="" bitnami_wordpress &gt; bitnami_wordpress.sql</pre>
</div>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image11.png" alt="image11">
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>At a later point, you may wish to restore the database. To restore the data to a fresh MySQL/MariaDB database from the command line, follow these steps:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Launch a new Windows command shell using the "Shell" button in the XAMPP control panel.</p>
</li>
<li>
<p>Use the <em>mysql</em> client to create a new, empty database to hold your data. In this example, the new database is named <em>myblog</em>.</p>
<div class="literalblock">
<div class="content">
<pre>mysql --user=root --password="" -e "CREATE DATABASE myblog"</pre>
</div>
</div>
<div class="paragraph">
<p>Remember to use the correct database access credentials in the command. On a fresh XAMPP installation without any changes, you can usually log in as root with a blank password.</p>
</div>
</li>
<li>
<p>Use the <em>mysql</em> client to import the contents of the backup file into the new database.</p>
<div class="literalblock">
<div class="content">
<pre>mysql --user=root --password="" --database=myblog &lt; bitnami_wordpress.sql</pre>
</div>
</div>
<div class="paragraph">
<p>The command-line client will now import the data from the backup file.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image12.png" alt="image12">
</div>
</div>
</li>
</ol>
</div>
<div class="paragraph">
<p>If you browse the contents of the database, you should now see your original data.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image13.png" alt="image13">
</div>
</div>
<div class="paragraph">
<p>You should now update your application&#8217;s configuration and point it to your newly-created database. For example, with the Bitnami WordPress module, you will need to edit the <em>wp-config.php</em> file in the <em>apps\wordpress\htdocs\</em> subdirectory of your XAMPP installation directory. Within this file, you will need to update the <em>DB_NAME</em> constant to use the new database name.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="./images/backup-restore-mysql/image14.png" alt="image14">
</div>
</div>
</div>
</div>
    </article>
  </div>
</div>

    </div>

    <footer>
      <div class="row">
        <div class="large-12 columns">
          <div class="row">
            <div class="large-8 columns">
              <ul class="social">
  <li class="twitter"><a href="https://twitter.com/apachefriends">Follow us on Twitter</a></li>
  <li class="facebook"><a href="https://www.facebook.com/we.are.xampp">Like us on Facebook</a></li>
  <li class="google"><a href="https://plus.google.com/+xampp/posts">Add us to your G+ Circles</a></li>
</ul>

              <ul class="inline-list">
                <li><a href="https://www.apachefriends.org/blog.html">Blog</a></li>
                <li><a href="https://www.apachefriends.org/privacy_policy.html">Privacy Policy</a></li>
                <li>
<a target="_blank" href="http://www.fastly.com/">                    CDN provided by
                    <img width="48" data-2x="/dashboard/images/fastly-logo@2x.png" src="/dashboard/images/fastly-logo.png" />
</a>                </li>
              </ul>
            </div>
            <div class="large-4 columns">
              <p class="text-right">Copyright (c) 2018, Apache Friends</p>
            </div>
          </div>
        </div>
      </div>
    </footer>

    <!-- JS Libraries -->
    <script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
    <script src="/dashboard/javascripts/all.js" type="text/javascript"></script>
  </body>
</html>
